﻿using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("NDBGen")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("NDBGen")]
[assembly: AssemblyProduct("NDBGen")]
[assembly: AssemblyCopyright("NDBgen")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("ce02b31d-7384-4375-aae1-333975a4f2a6")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("4.1.0.0")]
[assembly: AssemblyFileVersion("4.1.0.0")]

/* Revision history -----------------------------------------------------------
 * 
 * v1.0.0.0     Initial release
 * v1.1.0.0     Fixed bug with foreign keys
 * v1.2.0.0     Fixed bug with MAX data length; added obliterate parser
 * v1.3.0.0     Added XML data type
 * v1.4.0.0     Added TEXT,NTEXT data type; added UpdateCheck.Never for big cols
 * v1.4.1.0     Fixed bug with depluralizing "statuses"
 * v1.5.0.0     Added support for rowversion type
 *              ColumnAttribute decorations for autogenerated primary key properties now include AutoSync = AutoSync.OnInsert
 *              Changed the nullable column descriptor from ! to ?
 * v1.6.0.0     Added support for smalldatetime type
 *              Fixed bug to allow for nullable Byte[] columns
 * v2.0.0.0     Major rework/fork!
 *              Tokens split into individual descriptorExport classes
 *              Descriptor support added for tables
 *              Lookup data generation
 *              Enum generation
 * v2.1.0.0     Changed foreign key naming scheme to be specific to the columns of both tables involved, which allows multiple foreign keys between two tables
 *              Import System.Runtime.Serialization when using DataContract attributes
 *              Fixed a bug in the SQL define proc generation code that incorrectly truncated _id from parameter names for columns that do not require lookups
 *              Improved handling of empty/null lookup data values 
 * v2.1.1.0     Fixed an edge case breaking bug that would cause the build to fail if all tables in a schema were replaced in C# by enums
 *              Updated string depluralization logic to support the -xes suffix (as in "indexes")
 * v2.2.0.0     Allow multiple lookup columns (! descriptor) in lookup data
 *              Allow long strings or binary values to be loaded from files in lookup data
 * v2.2.1.0     Fixed an edge case breaking bug that could cause invalid SQL to be generated if a column used for lookup is listed as the last column in the lookup data
 * v2.2.3.0     Fixed a bug that would cause invalid lookup SQL to be generated if a foreign key column was also a lookup column
 * v2.2.4.0     Added depluralization rules for -ches and -esses
 * v2.2.5.0     Added support for float and decimal data types
 *              Improved error clarity when an unexpected data type is encountered
 * v2.2.6.0     Added null comparison when looking up existing values in a "define" stored procedure for nullable columns
 * v3.0.0.0     Refactored arguments
 *              Added option to separate lookup data into a different SQL file
 *              Added options for separate "seed" and "fake" data files
 *              Expanded lookup column functionality to allow doing bulk inserts
 *              Added a hash descriptor (#) to lookup data to create a guid based on the hash value of another column
 * v3.0.1.0     Fixed an issue with bulk inserts that didn't generate the WHERE clause for lookup columns
 * v3.0.2.0     Fixed an issue where an SQL define procedure would break if the name of a column that was the target of a lookup was the same as the variable name specifying the lookup value
 * v3.0.3.0     Fixed an issue introduced by the fix in 3.0.2.0 where the renamed local variable was not used in all parts of the procedure
 * v3.0.4.0		Added .htm to the set of extensions treated as text files for data input
 * v3.1.0.0     Changed to 1-tab indentation instead of 2-whitespace
 *              Added comment lines (start with -)
 *              Ignore whitespace-only lines
 *              Added support for specifying scale in datatypes
 * v3.1.0.1     Fixed an issue causing "ID" properties to be named "iD" when used in a data contract
 * v3.1.0.2     Removed Timestamp from StandardDataType's array of supported data types 
 * v3.1.0.3     Fixed a bug introduced in the previous update that provided invalid column sizes
 * v3.2.0.0     Marked all public types as internal
 *              Added metadata attributes
 *              Added local copy of tables list to Generator, IColumnMetadata generate method signatures
 * v3.3.0.0     "LookupData" types -> lookupData - "lookupData" is a generic term for any scripted data (lookup, seed, fake), to avoid confusion with the specific lookup type of scripted data
 *              Added ColumnMetadataBase and ColumnTokenBase abstract classes to consolidate frequently used default implementations of IColumnMetadata and IColumnTokenDescriptor members
 *              Added LookupKeyMember attribute, which decorates properties used as part of a lookup key in scripted data
 * v3.3.1.0     Moved shared attributes (ForeignKeyFor, LookKeyMember) into separate NDBGen.Core assembly to avoid dependencies on SQL SMO library
 * v4.0.0.0     WillsLLC.DbGen -> NDBGen
 *              File-based configuration
 *              Abstractions for data access code generators, database script generators, project file managers
 *              Separated existing parser implementations into new platform-specific projects
 * v4.0.1.0     Updated plugin loading logic to allow loading plugins from the nuget packages folder
 * v4.0.1.1     Made a fix to make sure types from the main NDBGen assembly are included.
 * v4.0.1.2     Fix for the previous fix
 * v4.0.2.0     Added support to IDataAccessCodeFileGenerator for generating a base context file 
 * v4.1.0.0     Merged logic from NDBGen.Generator
 * --------------------------------------------------------------------------*/

[assembly: InternalsVisibleTo("NDBGenerate, PublicKey=0024000004800000940000000602000000240000525341310004000001000100bd9ed7ad7c832204582b07f11f6a8ac7352fe9a0387f556d1fd7c3fcb38d3cb57251067d74b45bafb9d8115c62cf714e2b49fa18e26e87d074e589df995e76160ee1024f45e0969f35429a24468ecc64000f1940113c8ad8caa220696b1d778dcb1c7110ab17f81e71a3123bd070edd3dfee187f66d9aae0109bf7c0870a79bc")]
[assembly: InternalsVisibleTo("NDBGen.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100bd9ed7ad7c832204582b07f11f6a8ac7352fe9a0387f556d1fd7c3fcb38d3cb57251067d74b45bafb9d8115c62cf714e2b49fa18e26e87d074e589df995e76160ee1024f45e0969f35429a24468ecc64000f1940113c8ad8caa220696b1d778dcb1c7110ab17f81e71a3123bd070edd3dfee187f66d9aae0109bf7c0870a79bc")]